//
//
//package cn.tedu.straw.portal.security;
//
//import org.springframework.security.core.userdetails.User;
//import org.springframework.security.core.userdetails.UserDetails;
//import org.springframework.security.core.userdetails.UserDetailsService;
//import org.springframework.security.core.userdetails.UsernameNotFoundException;
//import org.springframework.stereotype.Component;
//
////加了这个注解表示这个类将由Spring框架管理对象,项目在启动是时将由Spring框架将其new出来容器里面就有了这个类的对象也就管理了UserDetailsServiceImpl
//// ,UserDetailsServiceImpl还必须在Spring组件扫描里面
//@Component
///* 配置身份验证
//        auth.userDetailsService(userDetailsService);
//需要用到实现类 ,而实现类必须重写UserDetailsService这个接口
//*/
//public class UserDetailsServiceImpl implements UserDetailsService {//自动生成loadUserByUsername(String s)的方法
//
// //   @Autowired
// //   IVrduserService IVrduserService;
//
//    //在UserDetailsService接口中的loadUserByUsername()方法是有Spring Security框架调用的,当用户在登录页面中输入用户名.密码后,
//    //Spring Security就会使用用户提交的用户名来调用loadUserByUsername()方法,该方法应该返回与之对应的信息账号密码等
//    //Spring Security 会自动完成后面的密码对比和授权过程.
//    @Override
//    //用户提交后 如 root 1234 ,Spring Security将调用loadUserByUsername(String s)方法把root放进来,返回1234,
//    // 然后Spring Security将自动的把返回的1234与用户输入的1234对比
//    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
//
//      /*  LoginDTO LoginDTO = IVrduserService.loginByName(s);
//        if (LoginDTO == null) {
//            return null;
//        }*/
//
//
//        /*
//       调用 loadUserByUsername(String s)后返回给 UserDetails 这个类型,这个类型是一个接口
//       这个接口需要User类(用Springframework.Security包的User)
//       然后调用builder()的对象  点UserBuilder然后在UserDetail
//         */
//          UserDetails userDetails = User.builder()//这里类似链式的可以接着点下去,,,,Authorities这个是必须要写的
//                    .username("admin")
//                    .password("123456")
//                    .authorities("增删改查")
//                    .build();
//            return userDetails;
//        }
//
//
//    //        List<GrantedAuthority> authorities = new ArrayList<>();
////        List<PermissionVO> permissions = UserLoginVO.getPermissions();
////        for (PermissionVO permission : permissions) {
////            String authority = permission.getAuthority();
////            GrantedAuthority grantedAuthority = new SimpleGrantedAuthority(authority);
////            authorities.add(grantedAuthority);
////        }
//     /*   LoginUserInfo loginUserInfo = new LoginUserInfo(
//                LoginDTO.getUsername(),
//                LoginDTO.getPassword(),
//                authorities('增','删','改','查')
//        );
//
//        loginUserInfo.setId(loginUserInfo.getId());
//        return loginUserInfo;
//    }*/
//}
